package vip.xiaonuo.facedoor.iservice;

import vip.xiaonuo.facedoor.iservice.entity.PersonBaseParam;
import vip.xiaonuo.facedoor.iservice.entity.PersonBaseParamRet;
import vip.xiaonuo.facedoor.modular.devicebase.entity.DeviceBase;
import vip.xiaonuo.facedoor.modular.visitor.entity.Visitor;
import vip.xiaonuo.facedoor.modular.visitordevice.entity.VisitorDevice;

public interface IVisitorDealWithService {

    Integer SUCCESS = 1;
    Integer FAIL = 2;
    Integer ADD = 1;
    Integer UPDATE = 2;
    Integer DELETE = 3;


    PersonBaseParamRet getBaseParam(PersonBaseParam personBasePerson);

    void deleteException(VisitorDevice visitorDevice, Visitor visitor, DeviceBase deviceBase, Exception e);


    void delete(VisitorDevice visitorDevice, Visitor visitor, PersonBaseParamRet personBaseParamRet, DeviceBase deviceBase) throws Exception;


    void add(VisitorDevice visitorDevice, Visitor visitor, PersonBaseParamRet personBaseParamRet, DeviceBase deviceBase) throws Exception;


    void addException(VisitorDevice visitorDevice, Visitor visitor, DeviceBase deviceBase, Exception e);


    void updateException(VisitorDevice visitorDevice, Visitor visitor, DeviceBase deviceBase, Exception e);


    void update(VisitorDevice visitorDevice, Visitor visitor, PersonBaseParamRet baseParam, DeviceBase deviceBase) throws Exception;
}
